<?php
namespace frontend\controllers;

use Yii;
use yii\web\Controller;
use yii\filters\VerbFilter;

/**
 * 基类控制器，作为控制器中间层
 *
 * @author jois
 */
class BaseController extends Controller
{

    public $layout = 'main';

    public function behaviors()
    {
        return [
            'verbs' => [
                'class' => VerbFilter::className(),
                'actions' => [
                    'detail' => [
                        'get'
                    ]
                ]
            ]
        ];
    }

    /**
     * 验证短信验证码
     *
     * @param string $mobile
     */
    public function checkSms($mobile, $vcode)
    {
        if (! empty($mobile) && ! empty($vcode)) {
            // 取出缓存比较
            $key = 'captcha/' . $mobile;
            if ($vcode == Yii::$app->cache->get($key)) {
                // 删除缓存。
                Yii::$app->cache->delete($key);
                return true;
            }
        }
        return false;
    }

    /**
     * 在程序执行之前，对访问的方法进行权限验证.
     *
     * @param \yii\base\Action $action
     */
    public function beforeAction($action)
    {
        // 如果未登录，则直接返回，加入登录页面的忽略，要不会请求死循环
        if (is_null(Yii::$app->session['userid'])) {
            if (in_array(Yii::$app->request->pathInfo, [
                'user/center',
                'user/payment',
                'user/help'
            ])) {
                return $this->redirect('/user/login');
            }
        }

        return parent::beforeAction($action);
    }
}